Java. Deklaracje i prawa dost pu. Piotr Fulma«ski. December 4, Wydziaˆ Matematyki i Informatyki, Uniwersytet Šódzki, Polska

Wielkość: px
Rozpocząć pokaz od strony:

Download "Java. Deklaracje i prawa dost pu. Piotr Fulma«ski. December 4, Wydziaˆ Matematyki i Informatyki, Uniwersytet Šódzki, Polska"

Transkrypt

1 Java Deklaracje i prawa dost pu Piotr Fulma«ski Wydziaˆ Matematyki i Informatyki, Uniwersytet Šódzki, Polska December 4, 2010

2 Spis tre±ci 1 Java krótka charakterystyka 2 Deklaracje Nazwy Deklarowanie klas Deklarowanie interfejsów Deklarowanie skªadowych klasy Modykatory dost pu Inne modykatory Konstruktor Zmienne Typ wyliczeniowy (enum)

3 Java krótka charakterystyka Mo»na powiedzie, i» ka»dy program napisany w Javie jest zbiorem pewnych obiektów (ang. objects). Komunikacja mi dzy obiektami zazwyczaj odbywa si za po±rednictwem metod (ang. methods). To czym jest obiekt (jakiego jest rodzaju, typu, co potra) deniowane jest przez klas (ang. class) lub interfejs (ang. interface). Mówi c troch bardziej precyzyjnie

4 Java krótka charakterystyka Obiekt, klasa,... Klasa Jest to pewnego rodzaju wzorzec opisuj cy (deniuj cy) stany jakie mo»e przyj ka»dy obiekt utworzony w oparciu o dan klas a tak»e zachowania (czynno±ci, akcje) jakie s dla niego charakterystyczne (czynno±ci jakie mo»e wykona, akcj jakie mo»na zleci jemu do wykonania). Obiekt Stan Zachowanie

5 Java krótka charakterystyka Obiekt, klasa,... Klasa Jest to pewnego rodzaju wzorzec opisuj cy (deniuj cy) stany jakie mo»e przyj ka»dy obiekt utworzony w oparciu o dan klas a tak»e zachowania (czynno±ci, akcje) jakie s dla niego charakterystyczne (czynno±ci jakie mo»e wykona, akcj jakie mo»na zleci jemu do wykonania). Obiekt Stan Zachowanie

6 Java krótka charakterystyka Obiekt, klasa,... Klasa Jest to pewnego rodzaju wzorzec opisuj cy (deniuj cy) stany jakie mo»e przyj ka»dy obiekt utworzony w oparciu o dan klas a tak»e zachowania (czynno±ci, akcje) jakie s dla niego charakterystyczne (czynno±ci jakie mo»e wykona, akcj jakie mo»na zleci jemu do wykonania). Obiekt Stan Zachowanie

7 Java krótka charakterystyka Obiekt, klasa,... Klasa Jest to pewnego rodzaju wzorzec opisuj cy (deniuj cy) stany jakie mo»e przyj ka»dy obiekt utworzony w oparciu o dan klas a tak»e zachowania (czynno±ci, akcje) jakie s dla niego charakterystyczne (czynno±ci jakie mo»e wykona, akcj jakie mo»na zleci jemu do wykonania). Obiekt Stan Zachowanie

8 Java krótka charakterystyka Obiekt, klasa,... Klasa Jest to pewnego rodzaju wzorzec opisuj cy (deniuj cy) stany jakie mo»e przyj ka»dy obiekt utworzony w oparciu o dan klas a tak»e zachowania (czynno±ci, akcje) jakie s dla niego charakterystyczne (czynno±ci jakie mo»e wykona, akcj jakie mo»na zleci jemu do wykonania). Obiekt Stan Zachowanie

9 Dziedziczenie Java krótka charakterystyka

10 Pakiet jako zbiór klas Java krótka charakterystyka

11 Java krótka charakterystyka Nazwy i sªowa kluczowe Zwykle zagadnienie nazewnictwa stosowanego w Javie bywa marginalizowane przecie» to tylko nazwy. Z nazwami jest jednak tak jak z wymow przyjemniej rozmawia si nam z kim± o dobrej dykcji ni» osob mamrocz c co± niewyra¹nie pod nosem. Dodatkowo niewyra¹na wymowa bywa cz sto ¹ródªem pomyªek i przyczyn braku wzajemnego zrozumienia. Tak samo dzieje si te» w programowaniu. Dlatego postanowili±my po±wi ci nazwom osobny podrozdziaª w dalszej cz ±ci podr cznika (patrz

12 Nazwy Nazwy Mówi c o nazwach, pam ta musimy,»e podlegaj one (jednocze±nie) trzem konwencjom nazewniczym.

13 Nazwy Identykatory poprawne skªadniowo Identykatory poprawne skªadniowo Bez wzgl du na to jak nazw (identykator)sobie wymy±limy, czy stosujemy si do wªasnej konwencji czy narzuconej np. przez rm, w której pracujemy, musi ona by poprawna skªadniowo, czyli by zbudowana zgodnie z zasadami wedªug jakich kompilator b dzie j w przyszªo±ci sprawdzaª.

14 Nazwy Identykatory poprawne skªadniowo Identykatory poprawne skªadniowo Dopuszczalne znaki Istotna wielko± liter Pierwszy znak Dªugo± identykatora Sªowa kluczowe

15 Nazwy Identykatory poprawne skªadniowo Identykatory poprawne skªadniowo Dopuszczalne znaki Istotna wielko± liter Pierwszy znak Dªugo± identykatora Sªowa kluczowe

16 Nazwy Identykatory poprawne skªadniowo Identykatory poprawne skªadniowo Dopuszczalne znaki Istotna wielko± liter Pierwszy znak Dªugo± identykatora Sªowa kluczowe

17 Nazwy Identykatory poprawne skªadniowo Identykatory poprawne skªadniowo Dopuszczalne znaki Istotna wielko± liter Pierwszy znak Dªugo± identykatora Sªowa kluczowe

18 Nazwy Identykatory poprawne skªadniowo Identykatory poprawne skªadniowo Dopuszczalne znaki Istotna wielko± liter Pierwszy znak Dªugo± identykatora Sªowa kluczowe

19 Nazwy Identykatory poprawne skªadniowo Identykatory poprawne skªadniowo Dopuszczalne znaki Istotna wielko± liter Pierwszy znak Dªugo± identykatora Sªowa kluczowe

20 Nazwy Identykatory poprawne skªadniowo Sªowa kluczowe tabela

21 Nazwy Konwencja nazewnicza rmy Sun Konwencja nazewnicza rmy Sun Java Code Convention, September 12,

22 Nazwy Konwencja nazewnicza rmy Sun Konwencja nazewnicza rmy Sun Klasy i interfejsy Metody Zmienne Staªe

23 Nazwy Konwencja nazewnicza rmy Sun Konwencja nazewnicza rmy Sun Klasy i interfejsy Metody Zmienne Staªe

24 Nazwy Konwencja nazewnicza rmy Sun Konwencja nazewnicza rmy Sun Klasy i interfejsy Metody Zmienne Staªe

25 Nazwy Konwencja nazewnicza rmy Sun Konwencja nazewnicza rmy Sun Klasy i interfejsy Metody Zmienne Staªe

26 Nazwy Konwencja nazewnicza rmy Sun Konwencja nazewnicza rmy Sun Klasy i interfejsy Metody Zmienne Staªe

27 Nazwy Konwencja nazewnicza JavaBean Konwencja nazewnicza JavaBean Co to jest JavaBean?

28 Nazwy Konwencja nazewnicza JavaBean Konwencja nazewnicza wªasno±ci (ang. property) JavaBean Gettery Settery

29 Nazwy Konwencja nazewnicza JavaBean Konwencja nazewnicza wªasno±ci (ang. property) JavaBean Gettery Settery

30 Nazwy Konwencja nazewnicza JavaBean Konwencja nazewnicza wªasno±ci (ang. property) JavaBean Gettery Settery

31 Nazwy Konwencja nazewnicza JavaBean Konwencja nazewnicza (ang. listener) JavaBean rejestrowanie listenera (add) wyrejestrowanie listenera (remove) wspólne: ko«cówka to Listener

32 Nazwy Konwencja nazewnicza JavaBean Konwencja nazewnicza (ang. listener) JavaBean rejestrowanie listenera (add) wyrejestrowanie listenera (remove) wspólne: ko«cówka to Listener

33 Nazwy Konwencja nazewnicza JavaBean Konwencja nazewnicza (ang. listener) JavaBean rejestrowanie listenera (add) wyrejestrowanie listenera (remove) wspólne: ko«cówka to Listener

34 Nazwy Konwencja nazewnicza JavaBean Konwencja nazewnicza (ang. listener) JavaBean rejestrowanie listenera (add) wyrejestrowanie listenera (remove) wspólne: ko«cówka to Listener

35 Deklarowanie klas Wiadomo±ci ogólne Wiadomo±ci ogólne Wpªyw komentarzy Tylko jedna klasa publiczna w pliku ¹ródªowym (nie ma limitu na klasy niepubliczne). Class name and le name matching rule (tylko gdy istnieje klasa publiczna). Umiejscowienie sªowa kluczowego package w klasie. Umiejscowienie sªowa kluczowego import w klasie. Globalne dziaªanie package i import w stosunku do klas umieszczonych w tym samym pliku.

36 Deklarowanie klas Wiadomo±ci ogólne Wiadomo±ci ogólne Wpªyw komentarzy Tylko jedna klasa publiczna w pliku ¹ródªowym (nie ma limitu na klasy niepubliczne). Class name and le name matching rule (tylko gdy istnieje klasa publiczna). Umiejscowienie sªowa kluczowego package w klasie. Umiejscowienie sªowa kluczowego import w klasie. Globalne dziaªanie package i import w stosunku do klas umieszczonych w tym samym pliku.

37 Deklarowanie klas Wiadomo±ci ogólne Wiadomo±ci ogólne Wpªyw komentarzy Tylko jedna klasa publiczna w pliku ¹ródªowym (nie ma limitu na klasy niepubliczne). Class name and le name matching rule (tylko gdy istnieje klasa publiczna). Umiejscowienie sªowa kluczowego package w klasie. Umiejscowienie sªowa kluczowego import w klasie. Globalne dziaªanie package i import w stosunku do klas umieszczonych w tym samym pliku.

38 Deklarowanie klas Wiadomo±ci ogólne Wiadomo±ci ogólne Wpªyw komentarzy Tylko jedna klasa publiczna w pliku ¹ródªowym (nie ma limitu na klasy niepubliczne). Class name and le name matching rule (tylko gdy istnieje klasa publiczna). Umiejscowienie sªowa kluczowego package w klasie. Umiejscowienie sªowa kluczowego import w klasie. Globalne dziaªanie package i import w stosunku do klas umieszczonych w tym samym pliku.

39 Deklarowanie klas Wiadomo±ci ogólne Wiadomo±ci ogólne Wpªyw komentarzy Tylko jedna klasa publiczna w pliku ¹ródªowym (nie ma limitu na klasy niepubliczne). Class name and le name matching rule (tylko gdy istnieje klasa publiczna). Umiejscowienie sªowa kluczowego package w klasie. Umiejscowienie sªowa kluczowego import w klasie. Globalne dziaªanie package i import w stosunku do klas umieszczonych w tym samym pliku.

40 Deklarowanie klas Wiadomo±ci ogólne Wiadomo±ci ogólne Wpªyw komentarzy Tylko jedna klasa publiczna w pliku ¹ródªowym (nie ma limitu na klasy niepubliczne). Class name and le name matching rule (tylko gdy istnieje klasa publiczna). Umiejscowienie sªowa kluczowego package w klasie. Umiejscowienie sªowa kluczowego import w klasie. Globalne dziaªanie package i import w stosunku do klas umieszczonych w tym samym pliku.

41 Deklarowanie klas Wiadomo±ci ogólne Wiadomo±ci ogólne Wpªyw komentarzy Tylko jedna klasa publiczna w pliku ¹ródªowym (nie ma limitu na klasy niepubliczne). Class name and le name matching rule (tylko gdy istnieje klasa publiczna). Umiejscowienie sªowa kluczowego package w klasie. Umiejscowienie sªowa kluczowego import w klasie. Globalne dziaªanie package i import w stosunku do klas umieszczonych w tym samym pliku.

42 Deklarowanie klas Najprostsza deklaracja klasy c l a s s myclass { Modykatory Modykatory dost pu: public, protected, private. Inne modykatory: final, abstract, strictfp

43 Deklarowanie klas Najprostsza deklaracja klasy c l a s s myclass { Modykatory Modykatory dost pu: public, protected, private. Inne modykatory: final, abstract, strictfp

44 Deklarowanie klas Najprostsza deklaracja klasy c l a s s myclass { Modykatory Modykatory dost pu: public, protected, private. Inne modykatory: final, abstract, strictfp

45 Deklarowanie klas Najprostsza deklaracja klasy c l a s s myclass { Modykatory Modykatory dost pu: public, protected, private. Inne modykatory: final, abstract, strictfp

46 Deklarowanie klas Modykatory dost pu Modykatory dost pu Cho mamy trzy modykatory dost pu (public, protected, private), to w Javie mamy cztery poziomy kontroli (ang. level or access control) czwarty nazywany jest domy±lnym (ang. default access level) lub pakietowym (ang. package access level). W stosunku do klas u»ywamy albo dost pu domy±lnego, albo public.

47 Deklarowanie klas Modykatory dost pu Co rozumiemy pod poj ciem: dost p do klasy? Powiemy,»e klasa A ma dost p do klasy B je±li klasa A mo»e wykona jedn z nast puj cych czynno±ci Utworzy instancj klasy B. Rozszerzy klas B. U»ywa metod i zmiennych klasy B (zale»nie od ich modykatorów dost pu).

48 Deklarowanie klas Modykatory dost pu Co rozumiemy pod poj ciem: dost p do klasy? Powiemy,»e klasa A ma dost p do klasy B je±li klasa A mo»e wykona jedn z nast puj cych czynno±ci Utworzy instancj klasy B. Rozszerzy klas B. U»ywa metod i zmiennych klasy B (zale»nie od ich modykatorów dost pu).

49 Deklarowanie klas Modykatory dost pu Co rozumiemy pod poj ciem: dost p do klasy? Powiemy,»e klasa A ma dost p do klasy B je±li klasa A mo»e wykona jedn z nast puj cych czynno±ci Utworzy instancj klasy B. Rozszerzy klas B. U»ywa metod i zmiennych klasy B (zale»nie od ich modykatorów dost pu).

50 Deklarowanie klas Modykatory dost pu Co rozumiemy pod poj ciem: dost p do klasy? Powiemy,»e klasa A ma dost p do klasy B je±li klasa A mo»e wykona jedn z nast puj cych czynno±ci Utworzy instancj klasy B. Rozszerzy klas B. U»ywa metod i zmiennych klasy B (zale»nie od ich modykatorów dost pu).

51 Deklarowanie klas Domy±lny poziom kontroli package p a k i e t 1 ; c l a s s K l a s a { Listing 1: Plik Klasa.java Listing 2: Plik KlasaLepsza.java package p a k i e t 2 ; import p a k i e t 1. K l a s a ; c l a s s K l a s a L e p s z a extends K l a s a { Wynik próby uruchomienia Can't access class pakiet1.klasa. Class or interface must be public, in same package, or an accessible member class. import pakiet1.klasa;

52 Deklarowanie klas Publiczny poziom kontroli package p a k i e t 1 ; p u b l i c c l a s s K l a s a { Teraz mo»na napisa Listing 3: Plik Klasa.java Listing 4: Plik KlasaLepsza.java package p a k i e t 2 ; import p a k i e t 1. K l a s a ; c l a s s K l a s a L e p s z a extends K l a s a {

53 final Deklarowanie klas Inne modykatory

54 abstract Deklarowanie klas Inne modykatory

55 strictfp Deklarowanie klas Inne modykatory

56 Deklarowanie interfejsów Czym jest interfejs? Czym jest interfejs? Interfejs jest pewnego rodzaju umow okre±laj c co klasa mo»e robi, bez okre±lania w jaki sposób to robi.

57 Deklarowanie interfejsów Czym jest interfejs? O interfejsie mo»na my±le jak o 100% abstakcyjnej klasie. W konsekwencji metody interfejsu z denicji s publiczne i abstrakcyjne wi c nie musimy tego pisa : p u b l i c a b s t r a c t void i n t e r f a c e M e t h o d ( ) ; zwykle zapisujemy jako void i n t e r f a c e M e t h o d ( ) ;

58 Deklarowanie interfejsów Pozostaªe cechy interfejsów Pozostaªe cechy interfejsów Interfejs deklarujemy za pomoc sªowa kluczowego interface. Wszystkie zmienne interfejsu musz by publiczne, statyczne i zadeklarowane jako final inymi sªowy, w interfejsie mo»na tworzy tylko staªe. Konsekwencja tego jest taka jak dla metod: poniewa» zmienna musz by takie, wiec nie trzeba tego pisa. Interfejs nie mo»e posiada modykatora static. Poniewa» metody interfejsu s abstrakcyjne, wi c nie mog by final, strictfp, native. Interfejsc mo»e tylko rozszerza jeden lub wi cej interfejsów. Interfejs nie mo»e implementowa innego interfejsu lub klasy.

59 Deklarowanie interfejsów Pozostaªe cechy interfejsów Pozostaªe cechy interfejsów Interfejs deklarujemy za pomoc sªowa kluczowego interface. Wszystkie zmienne interfejsu musz by publiczne, statyczne i zadeklarowane jako final inymi sªowy, w interfejsie mo»na tworzy tylko staªe. Konsekwencja tego jest taka jak dla metod: poniewa» zmienna musz by takie, wiec nie trzeba tego pisa. Interfejs nie mo»e posiada modykatora static. Poniewa» metody interfejsu s abstrakcyjne, wi c nie mog by final, strictfp, native. Interfejsc mo»e tylko rozszerza jeden lub wi cej interfejsów. Interfejs nie mo»e implementowa innego interfejsu lub klasy.

60 Deklarowanie interfejsów Pozostaªe cechy interfejsów Pozostaªe cechy interfejsów Interfejs deklarujemy za pomoc sªowa kluczowego interface. Wszystkie zmienne interfejsu musz by publiczne, statyczne i zadeklarowane jako final inymi sªowy, w interfejsie mo»na tworzy tylko staªe. Konsekwencja tego jest taka jak dla metod: poniewa» zmienna musz by takie, wiec nie trzeba tego pisa. Interfejs nie mo»e posiada modykatora static. Poniewa» metody interfejsu s abstrakcyjne, wi c nie mog by final, strictfp, native. Interfejsc mo»e tylko rozszerza jeden lub wi cej interfejsów. Interfejs nie mo»e implementowa innego interfejsu lub klasy.

61 Deklarowanie interfejsów Pozostaªe cechy interfejsów Pozostaªe cechy interfejsów Interfejs deklarujemy za pomoc sªowa kluczowego interface. Wszystkie zmienne interfejsu musz by publiczne, statyczne i zadeklarowane jako final inymi sªowy, w interfejsie mo»na tworzy tylko staªe. Konsekwencja tego jest taka jak dla metod: poniewa» zmienna musz by takie, wiec nie trzeba tego pisa. Interfejs nie mo»e posiada modykatora static. Poniewa» metody interfejsu s abstrakcyjne, wi c nie mog by final, strictfp, native. Interfejsc mo»e tylko rozszerza jeden lub wi cej interfejsów. Interfejs nie mo»e implementowa innego interfejsu lub klasy.

62 Deklarowanie interfejsów Pozostaªe cechy interfejsów Pozostaªe cechy interfejsów Interfejs deklarujemy za pomoc sªowa kluczowego interface. Wszystkie zmienne interfejsu musz by publiczne, statyczne i zadeklarowane jako final inymi sªowy, w interfejsie mo»na tworzy tylko staªe. Konsekwencja tego jest taka jak dla metod: poniewa» zmienna musz by takie, wiec nie trzeba tego pisa. Interfejs nie mo»e posiada modykatora static. Poniewa» metody interfejsu s abstrakcyjne, wi c nie mog by final, strictfp, native. Interfejsc mo»e tylko rozszerza jeden lub wi cej interfejsów. Interfejs nie mo»e implementowa innego interfejsu lub klasy.

63 Deklarowanie interfejsów Pozostaªe cechy interfejsów Pozostaªe cechy interfejsów Interfejs deklarujemy za pomoc sªowa kluczowego interface. Wszystkie zmienne interfejsu musz by publiczne, statyczne i zadeklarowane jako final inymi sªowy, w interfejsie mo»na tworzy tylko staªe. Konsekwencja tego jest taka jak dla metod: poniewa» zmienna musz by takie, wiec nie trzeba tego pisa. Interfejs nie mo»e posiada modykatora static. Poniewa» metody interfejsu s abstrakcyjne, wi c nie mog by final, strictfp, native. Interfejsc mo»e tylko rozszerza jeden lub wi cej interfejsów. Interfejs nie mo»e implementowa innego interfejsu lub klasy.

64 Deklarowanie interfejsów Pozostaªe cechy interfejsów Pozostaªe cechy interfejsów Interfejs deklarujemy za pomoc sªowa kluczowego interface. Wszystkie zmienne interfejsu musz by publiczne, statyczne i zadeklarowane jako final inymi sªowy, w interfejsie mo»na tworzy tylko staªe. Konsekwencja tego jest taka jak dla metod: poniewa» zmienna musz by takie, wiec nie trzeba tego pisa. Interfejs nie mo»e posiada modykatora static. Poniewa» metody interfejsu s abstrakcyjne, wi c nie mog by final, strictfp, native. Interfejsc mo»e tylko rozszerza jeden lub wi cej interfejsów. Interfejs nie mo»e implementowa innego interfejsu lub klasy.

65 Deklarowanie skªadowych klasy Modykatory Modykatory dost pu Podczas gdy klasa mo»e u»ywa tylko dwóch modykatorów dost pu, tj. domy±lnego lub public, skªadowe klasy (czyli metody i zmienne) mog u»ywa wszystkich czterech modykatorów, tj. public, protected, private oraz domy±lny.

66 Deklarowanie skªadowych klasy Modykatory Modykator public Dost p maj wszyscy, bez wzgl du na pakiet w jakim si znajduj (zakªadaj c,»e modykatory klas na to pozwalaj ).

67 Deklarowanie skªadowych klasy Modykator public (odwoªania do skªadowych) package book ; import c e r t. ; c l a s s Goo { p u b l i c s t a t i c void main ( S t r i n g [ ] a r g s ) { S ludge o = new S ludge ( ) ; o. t e s t I t ( ) ; package c e r t ; p u b l i c c l a s s S ludge { p u b l i c void t e s t I t ( ) { System. out. p r i n t l n ( " s l u d g e " ) ;

68 Deklarowanie skªadowych klasy Modykator public (wpªyw na dziedziczenie) package c e r t ; p u b l i c c l a s s Roo { p u b l i c S t r i n g doroothings ( ) { // i m a g i n e t h e fun code t h a t goes h e r e r e t u r n " fun " ; package n o t c e r t ; import c e r t. Roo ; c l a s s Cloo extends Roo { p u b l i c void t e s t C l o o ( ) { System. out. p r i n t l n ( doroothings ( ) ) ; // cdn

69 Deklarowanie skªadowych klasy Modykator public (wpªyw na dziedziczenie) // cd c l a s s Toon { p u b l i c s t a t i c void main ( S t r i n g [ ] a r g s ) { Cloo c = new Cloo ( ) ; System. out. p r i n t l n ( c. doroothings ( ) ) ; //No problem ; method i s p u b l i c

70 Deklarowanie skªadowych klasy Modykatory Modykator private Skªadowe prywatne s przeciwie«stwem skªadowych publicznych dos p do nich ma tylko klasa, w której zostaªy zadeklarowane.

71 Deklarowanie skªadowych klasy Modykator private (odwoªania do skªadowych 1/2) package c e r t ; p u b l i c c l a s s Roo { p r i v a t e S t r i n g doroothings ( ) { // i m a g i n e t h e fun code t h a t goes here, // but o n l y t h e Roo c l a s s knows r e t u r n " fun " ; package n o t c e r t ; import c e r t. Roo ; c l a s s UseARoo { p u b l i c void t e s t I t ( ) { Roo r = new Roo ( ) ; // So f a r so good ; // c l a s s Roo i s p u b l i c System. out. p r i n t l n ( r. doroothings ( ) ) ; // C o m p i l e r e r r o r!

72 Deklarowanie skªadowych klasy Modykator private (odwoªania do skªadowych 2/2) cannot find symbol symbol : method doroothings()

73 Deklarowanie skªadowych klasy Modykator private (wpªyw na dziedziczenie 1/2) package c e r t ; p u b l i c c l a s s Roo { p r i v a t e S t r i n g doroothings ( ) { // i m a g i n e t h e fun code t h a t goes here, // but no o t h e r c l a s s w i l l know r e t u r n " fun " ; package c e r t ; // Cloo and Roo a r e i n t h e same package c l a s s Cloo extends Roo {// S t i l l OK, s u p e r c l a s s Roo i s p u b l i c p u b l i c void t e s t C l o o ( ) { System. out. p r i n t l n ( doroothings ( ) ) ; // C o m p i l e r e r r o r!

74 Deklarowanie skªadowych klasy Modykator private (wpªyw na dziedziczenie 2/2) %javac Cloo.java Cloo.java:4: Undefined method: doroothings() System.out.println(doRooThings()); 1 error

75 Deklarowanie skªadowych klasy Modykatory Modykator protected W przypadku modykatora protected do skªadowej maj dost p wszystkie klasy potomne (nawet te z innych pakietów) oraz klasy z danego pakietu.

76 Deklarowanie skªadowych klasy Modykator protected (odwoªania do skªadowych 1/2) package c e r t i f i c a t i o n ; p u b l i c c l a s s O t h e r C l a s s { void t e s t I t ( ) { // No m o d i f i e r means method has d e f a u l t // a c c e s s System. out. p r i n t l n ( " O t h e r C l a s s " ) ; package s o m e t h i n g E l s e ; import c e r t i f i c a t i o n. O t h e r C l a s s ; c l a s s A c c e s s C l a s s { s t a t i c p u b l i c void main ( S t r i n g [ ] a r g s ) { O t h e r C l a s s o = new O t h e r C l a s s ( ) ; o. t e s t I t ( ) ;

77 Deklarowanie skªadowych klasy Modykator protected (odwoªania do skªadowych 2/2) No method matching testit() found in class certification.otherclass. o.testit();

78 Deklarowanie skªadowych klasy Modykator protected (odwoªania do skªadowych) package c e r t i f i c a t i o n ; p u b l i c c l a s s Parent { protected i n t x = 9 ; // p r o t e c t e d a c c e s s package o t h e r ; // D i f f e r e n t package import c e r t i f i c a t i o n. Parent ; c l a s s C h i l d extends Parent { p u b l i c void t e s t I t ( ) { System. out. p r i n t l n ( " x i s " + x ) ; // No problem ; C h i l d // i n h e r i t s x

79 Deklarowanie skªadowych klasy Modykator protected (odwoªania do skªadowych 1/2) package c e r t i f i c a t i o n ; p u b l i c c l a s s Parent { protected i n t x = 9 ; // p r o t e c t e d a c c e s s package o t h e r ; import c e r t i f i c a t i o n. Parent ; c l a s s C h i l d extends Parent { p u b l i c void t e s t I t ( ) { System. out. p r i n t l n ( " x i s " + x ) ; // No problem ; // C h i l d i n h e r i t s x Parent p = new Parent ( ) ; // Can we a c c e s s x u s i n g t h e // p r e f e r e n c e? System. out. p r i n t l n ( "X i n p a r e n t i s " + p. x ) ; // C o m p i l e r e r r o r!

80 Deklarowanie skªadowych klasy Modykator protected (odwoªania do skªadowych 2/2) %javac -d. other/child.java other/child.java:9: x has protected access in certification.parent System.out.println("X in parent is " + p.x); ^ 1 error

81 Deklarowanie skªadowych klasy Modykatory Modykator domy±lny W przypadku domy±lnego poziomu dost pu do skªadowej maj dost p klasy z tego samego pakietu.

82 Deklarowanie skªadowych klasy Modykator protected (odwoªania do skªadowych 1/2) package c e r t i f i c a t i o n ; p u b l i c c l a s s O t h e r C l a s s { void t e s t I t ( ) { // No m o d i f i e r means method has d e f a u l t // a c c e s s System. out. p r i n t l n ( " O t h e r C l a s s " ) ; package o t h e r ; // D i f f e r e n t package import c e r t i f i c a t i o n. Parent ; c l a s s C h i l d extends Parent { p u b l i c void t e s t I t ( ) { System. out. p r i n t l n ( " x i s " + x ) ;

83 Deklarowanie skªadowych klasy Modykator protected (odwoªania do skªadowych 2/2) Child.java:4: Undefined variable: x System.out.println("Variable x is " + x); 1 error

84 Deklarowanie skªadowych klasy Modykator protected (odwoªania do skªadowych) package c e r t i f i c a t i o n ; p u b l i c c l a s s Parent { i n t x = 9 ; // d e f a u l t a c c e s s package c e r t i f i c a t i o n ; c l a s s C h i l d extends Parent { s t a t i c p u b l i c void main ( S t r i n g [ ] a r g s ) { C h i l d s c = new C h i l d ( ) ; s c. t e s t I t ( ) ; p u b l i c void t e s t I t ( ) { System. out. p r i n t l n ( " V a r i a b l e x i s " + x ) ; problem ; // No

85 Deklarowanie zmiennych lokalnych Modykator protected (odwoªania do skªadowych) Poni»szy zapis nie jest poprawny c l a s s Foo { void d o S t u f f ( ) { p r i v a t e i n t x = 7 ; t h i s. domore ( x ) ; Jedyny modykator jaki mo»na zastosowa do zmiennych lokalnych to final.

86 Deklarowanie skªadowych klasy Modykatory Modykatory dost pu podsumowanie Widoczno± public protected private domy±lny Ta sama klasa Inna klasa z tego samego pakietu Podklasa z tego samego pakietu Podklasa z innego pakietu Klasa z innego pakietu

87 Deklarowanie skªadowych klasy Inne modykatory Inne modykatory dost pu final, abstract, synchronized, native, strictfp

88 Deklarowanie skªadowych klasy Modykatory Modykator final Zabezpiecza metod przed jej przesªoni ciem w klasie potomnej (ang. override)

89 Deklarowanie skªadowych klasy Modykator final (w przypadku metody) c l a s s S u p e r C l a s s { p u b l i c f i n a l void showsample ( ) { System. out. p r i n t l n ( "One t h i n g. " ) ; c l a s s S u b C l a s s extends S u p e r C l a s s { p u b l i c void showsample ( ) { // Try to o v e r r i d e t h e f i n a l // s u p e r c l a s s method System. out. p r i n t l n ( " Another t h i n g. " ) ;

90 Deklarowanie skªadowych klasy Modykator final (w przypadku metody) %javac FinalTest.java FinalTest.java:5: The method void showsample() declared in class SubClass cannot override the final method of the same signature declared in class SuperClass. Final methods cannot be overridden. public void showsample() { 1 error

91 Deklarowanie skªadowych klasy Modykator final (w przypadku argumentu) p u b l i c Record g e t R e c o r d ( i n t f i l e N u m b e r, i n t recnumber ) { p u b l i c Record g e t R e c o r d ( i n t f i l e N u m b e r, f i n a l i n t recordnumber ) {

92 Deklarowanie skªadowych klasy Modykatory Modykator abstract Metoda abstrakcyjna to metoda, która zostaªa zadeklarowana, ale nie zostaªa zaimplementowana.

93 Deklarowanie skªadowych klasy Modykator abstract (w przypadku metody) p u b l i c c l a s s I l l e g a l C l a s s { // i l l e g a l i f c l a s s i s not a b s t r a c t p u b l i c a b s t r a c t void d o I t ( ) ; IllegalClass.java:1: class IllegalClass must be declared abstract. It does not define void doit() from class IllegalClass. public class IllegalClass{ 1 error

94 Deklarowanie skªadowych klasy Modykator abstract (w przypadku metody) O ile nie mo»e by niebastrakcyjnej klasy z metodami abstrakcyjymi to mo»e by abstrakcyjna klasa z (tylko) metodami nieabstrakcyjnymi. p u b l i c a b s t r a c t c l a s s L e g a l C l a s s { void goodmethod ( ) { // l o t s o f r e a l i m p l e m e n t a t i o n code h e r e

95 Modykator abstract (w przypadku metody) Pytanie: ile metod jest w klasie Mini Deklarowanie skªadowych klasy p u b l i c a b s t r a c t c l a s s V e h i c l e { p r i v a t e S t r i n g t y p e ; p u b l i c a b s t r a c t void g o U p H i l l ( ) ; // A b s t r a c t method p u b l i c S t r i n g gettype ( ) { // Non a b s t r a c t method r e t u r n t y p e ; p u b l i c a b s t r a c t c l a s s Car extends V e h i c l e { p u b l i c a b s t r a c t void g o U p H i l l ( ) ; // S t i l l a b s t r a c t p u b l i c void docarthings ( ) { // s p e c i a l c a r code goes h e r e p u b l i c c l a s s Mini extends Car { p u b l i c void g o U p H i l l ( ) { // Mini s p e c i f i c g o i n g u p h i l l code

96 Deklarowanie skªadowych klasy Modykator abstract (w przypadku metody) Pytanie: czy ten kod si skompiluje? p u b l i c a b s t r a c t c l a s s A { a b s t r a c t void f o o ( ) ; c l a s s B extends A { void f o o ( i n t I ) { To jest przykªad na przeªadowanie (przeci»enie) (ang. overload). Klasa B nie zawiera w sobie implementacji metody foo.

97 Deklarowanie skªadowych klasy Modykator abstract (w przypadku metody) Pytanie: czy ten kod si skompiluje? p u b l i c a b s t r a c t c l a s s A { a b s t r a c t void f o o ( ) ; c l a s s B extends A { void f o o ( i n t I ) { To jest przykªad na przeªadowanie (przeci»enie) (ang. overload). Klasa B nie zawiera w sobie implementacji metody foo.

98 Deklarowanie skªadowych klasy Modykator abstract (w przypadku metody) abstract + static = illegal a b s t r a c t s t a t i c void d o S t u f f ( ) ; MyClass.java:2: illegal combination of modifiers: abstract and static abstract static void dostuff();

99 Deklarowanie skªadowych klasy Modykator synchronized synchronized oznacza,»e metoda nie mo»e by wywoªana przez wi cej ni» jeden w tek w tym samym czasie. p u b l i c synchronized Record r e t r i e v e U s e r I n f o ( i n t i d ) { Modykator ten dotyczy tylko metod (nie zmiennych, nie klas).

100 Deklarowanie skªadowych klasy Modykatory Modykator native, strictfp Modykator native oznacza,»e metoda (i tylko metoda) zaimplementowana zostaªa w sposób zale»ny platformowo, np. w j zyku C. Ciaªo takiej metody zast pujemy znakiem ±rednika (podobnie jak ciaªo metody abstrakcyjnej).

101 Deklarowanie skªadowych klasy Deklarowanie metod ze zmienn list argumentów L e g a l : void d o S t u f f ( i n t... x ) { // e x p e c t s from 0 to many i n t s // as p a r a m e t e r s void d o S t u f f 2 ( char c, i n t... x ) { // e x p e c t s f i r s t a char, // then 0 to many i n t s void d o S t u f f 3 ( Animal... a n i m a l ) { // 0 to many Animals I l l e g a l : void d o S t u f f 4 ( i n t x... ) { // bad s y n t a x void d o S t u f f 5 ( i n t... x, char... y ) { // too many var a r g s void d o S t u f f 6 ( S t r i n g... s, byte b ) { // var a r g must be l a s t

102 Deklarowanie skªadowych klasy Konstruktor c l a s s Foo { protected Foo ( ) { // t h i s i s Foo ' s c o n s t r u c t o r protected void Foo ( ) { // t h i s i s a b a d l y named, // but l e g a l, method Konstruktor Konstruktor nie mo»e by poprzedzony modykatorem static, final ani abstract.

103 Deklarowanie skªadowych klasy Konstruktor c l a s s Foo { protected Foo ( ) { // t h i s i s Foo ' s c o n s t r u c t o r protected void Foo ( ) { // t h i s i s a b a d l y named, // but l e g a l, method Konstruktor Konstruktor nie mo»e by poprzedzony modykatorem static, final ani abstract.

104 Deklarowanie skªadowych klasy Konstruktor c l a s s Foo2 { // l e g a l c o n s t r u c t o r s Foo2 ( ) { p r i v a t e Foo2 ( byte b ) { Foo2 ( i n t x ) { Foo2 ( i n t x, i n t... y ) {

105 Deklarowanie skªadowych klasy Konstruktor c l a s s Foo2 { // i l l e g a l c o n s t r u c t o r s void Foo2 ( ) { // i t ' s a method, not a c o n s t r u c t o r Foo ( ) { // not a method o r a c o n s t r u c t o r Foo2 ( short s ) ; // l o o k s l i k e an a b s t r a c t method s t a t i c Foo2 ( f l o a t f ) { // can ' t be s t a t i c f i n a l Foo2 ( long x ) { // can ' t be f i n a l a b s t r a c t Foo2 ( char c ) { // can ' t be a b s t r a c t Foo2 ( i n t... x, i n t t ) { // bad var a r g s y n t a x

106 Deklarowanie skªadowych klasy Zmienne W Javie mamy dwa rodzaje zmiennych Zmienne proste char, boolean, byte, short, int, long, float, double byte b ; boolean m y B o o l e a n P r i m i t i v e ; i n t x, y, z ; Zmienne referencyjne czyli zmienne u»ywane w stosunku do obiektów. Zmienna referencyjna pozwala na uzyskanie dost pu do obiektów typu takiego jak zmienna referencyjna lub b d cych podtypem zaeklarowanego typu. O b ject o ; Dog mynewdogreferencevariable ; S t r i n g s1, s2, s3 ;

107 Deklarowanie skªadowych klasy Zmienne instancyjne c l a s s Employee { // d e f i n e f i e l d s ( i n s t a n c e v a r i a b l e s ) f o r employee i n s t a n c e s p r i v a t e S t r i n g name ; p r i v a t e S t r i n g t i t l e, p r i v a t e S t r i n g manager ; // o t h e r code goes h e r e i n c l u d i n g a c c e s s methods f o r p r i v a t e // f i e l d s

108 Deklarowanie skªadowych klasy Zmienne lokalne c l a s s T e s t S e r v e r { p u b l i c void l o g I n ( ) { i n t count = 1 0 ;

109 Deklarowanie skªadowych klasy Zmienne lokalne c l a s s T e s t S e r v e r { p u b l i c void l o g I n ( ) { i n t count = 1 0 ; p u b l i c void dosomething ( i n t i ) { count = i ; // Won ' t c o m p i l e! Can ' t a c c e s s count o u t s i d e // method l o g I n ( )

110 Deklarowanie skªadowych klasy Zmienne instancyjne i lokalne (shadowing) c l a s s T e s t S e r v e r { i n t count = 9 ; // D e c l a r e an i n s t a n c e v a r i a b l e named count p u b l i c void l o g I n ( ) { i n t count = 1 0 ; // D e c l a r e a l o c a l v a r i a b l e named count System. out. p r i n t l n ( " l o c a l v a r i a b l e count i s "+count ) ; p u b l i c void count ( ) { System. out. p r i n t l n ( " i n s t a n c e v a r i a b l e count i s " + count ) ; p u b l i c s t a t i c void main ( S t r i n g [ ] a r g s ) { new T e s t S e r v e r ( ). l o g I n ( ) ; new T e s t S e r v e r ( ). count ( ) ;

111 Deklarowanie skªadowych klasy Zmienne instancyjne i lokalne (shadwing) i l l e g a l c l a s s Foo { i n t s i z e = 2 7 ; p u b l i c void s e t S i z e ( i n t s i z e ) { s i z e = s i z e ; //??? which s i z e e q u a l s which s i z e??? l e g a l : c l a s s Foo { i n t s i z e = 2 7 ; p u b l i c void s e t S i z e ( i n t s i z e ) { t h i s. s i z e = s i z e ; // t h i s. s i z e means t h e c u r r e n t o b j e c t ' s // i n s t a n c e v a r i a b l e, s i z e. The s i z e // on t h e r i g h t i s t h e p a r a m e t e r

112 Deklarowanie skªadowych klasy Tablice D e c l a r i n g an Array o f P r i m i t i v e s i n t [ ] key ; // Recommended i n t key [ ] ; // L e g a l but l e s s r e a d a b l e D e c l a r i n g an Array o f O b ject R e f e r e n c e s Thread [ ] t h r e a d s ; // Recommended Thread t h r e a d s [ ] ; // L e g a l but l e s s r e a d a b l e S t r i n g [ ] [ ] [ ] occupantname ; S t r i n g [ ] managername [ ] ; // L e g a l but not recommended

113 Deklarowanie skªadowych klasy Zmienne Statyczne zmienne i metody Modykator static wykorzysywany jest do utworzenia zmiennych i metod stniej cych niezale»nie od jakichkolwiek obiektów danej klasy.

114 Deklarowanie skªadowych klasy Typ wyliczeniowy (enum) enum C o f f e e S i z e { BIG, HUGE, OVERWHELMING ; C o f f e e S i z e c s = C o f f e e S i z e. BIG ;

115 Deklarowanie skªadowych klasy Typ wyliczeniowy (enum) na zewn trz klasy // t h i s cannot be p r i v a t e o r p r o t e c t e d enum C o f f e e S i z e { BIG, HUGE, OVERWHELMING c l a s s C o f f e e { C o f f e e S i z e s i z e ; p u b l i c c l a s s C o f f e e T e s t 1 { p u b l i c s t a t i c void main ( S t r i n g [ ] a r g s ) { C o f f e e d r i n k = new C o f f e e ( ) ; d r i n k. s i z e = C o f f e e S i z e. BIG ; // enum o u t s i d e c l a s s

116 Deklarowanie skªadowych klasy Typ wyliczeniowy (enum) wewn trz klasy c l a s s C o f f e e 2 { enum C o f f e e S i z e {BIG, HUGE, OVERWHELMING C o f f e e S i z e s i z e ; p u b l i c c l a s s C o f f e e T e s t 2 { p u b l i c s t a t i c void main ( S t r i n g [ ] a r g s ) { C o f f e e 2 d r i n k = new C o f f e e 2 ( ) ; d r i n k. s i z e = C o f f e e 2. C o f f e e S i z e. BIG ; // e n c l o s i n g c l a s s // name r e q u i r e d

117 Deklarowanie skªadowych klasy Typ wyliczeniowy (enum) nie mo»e by deklarowany wewn trz metody p u b l i c c l a s s C o f f e e T e s t 1 { p u b l i c s t a t i c void main ( S t r i n g [ ] a r g s ) { enum C o f f e e S i z e { BIG, HUGE, OVERWHELMING C o f f e e d r i n k = new C o f f e e ( ) ; d r i n k. s i z e = C o f f e e S i z e. BIG ; Opcjonaln ±rednik // s e m i c o l o n a t t h e end o f t h e enum d e c l a r a t i o n i s o p t i o n a l enum C o f f e e S i z e { BIG, HUGE, OVERWHELMING ;

Interfejsy, klasy wewn trzne jako szczególny rodzaj obiektów

Interfejsy, klasy wewn trzne jako szczególny rodzaj obiektów Interfejsy, klasy wewn trzne jako szczególny rodzaj obiektów Robert A. Kªopotek r.klopotek@uksw.edu.pl Wydziaª Matematyczno-Przyrodniczy. Szkoªa Nauk cisªych, UKSW 16.03.2017 Interfejsy raz jeszcze "Interfejsy

Bardziej szczegółowo

Imi i nazwisko... Egzamin - Programowanie Obiektowe II rok informatyki, studia pierwszego stopnia, niestacjonarne Termin zerowy

Imi i nazwisko... Egzamin - Programowanie Obiektowe II rok informatyki, studia pierwszego stopnia, niestacjonarne Termin zerowy Imi i nazwisko....................................................... Egzamin - Programowanie Obiektowe II rok informatyki, studia pierwszego stopnia, niestacjonarne Termin zerowy 21.01.2017 Instrukcja:

Bardziej szczegółowo

Kurs programowania. Wykład 13. Wojciech Macyna. 14 czerwiec 2017

Kurs programowania. Wykład 13. Wojciech Macyna. 14 czerwiec 2017 Wykład 13 14 czerwiec 2017 Java vs cpp - podobieństwa Podobny sposób definiowania klas. Występowanie typów podstawowych: boolean, char, byte, short, int, long, float, double. Podobna zasada definiowania

Bardziej szczegółowo

1 Klasy. 1.1 Denicja klasy. 1.2 Skªadniki klasy.

1 Klasy. 1.1 Denicja klasy. 1.2 Skªadniki klasy. 1 Klasy. Klasa to inaczej mówi c typ który podobnie jak struktura skªada si z ró»nych typów danych. Tworz c klas programista tworzy nowy typ danych, który mo»e by modelem rzeczywistego obiektu. 1.1 Denicja

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Wykład 2: Wstęp do języka Java 3/4/2013 S.Deniziak: Programowanie obiektowe - Java 1 Cechy języka Java Wszystko jest obiektem Nie ma zmiennych globalnych Nie ma funkcji globalnych

Bardziej szczegółowo

Marcin Luckner Politechnika Warszawska Wydział Matematyki i Nauk Informacyjnych

Marcin Luckner Politechnika Warszawska Wydział Matematyki i Nauk Informacyjnych Marcin Luckner Politechnika Warszawska Wydział Matematyki i Nauk Informacyjnych mluckner@mini.pw.edu.pl http://www.mini.pw.edu.pl/~lucknerm Programy w Javie składają się z pakietów Pakiety zawierają definicje

Bardziej szczegółowo

Java Język programowania

Java Język programowania Java Język programowania Język Java Bazuje i jest zbliżony do C/C++ Porosty zbiór typów danych (podział na typy prymitywne i obiektowe) Zarządzanie pamięcią i Garbage Collection Zintegrowana synchronizacja

Bardziej szczegółowo

Wykład 7: Pakiety i Interfejsy

Wykład 7: Pakiety i Interfejsy Wykład 7: Pakiety i Interfejsy Plik Źródłowy w Javie Składa się z: instrukcji pakietu (pojedyncza, opcjonalna) instrukcji importujących (wielokrotne, opcjonalne) deklaracji klasy publicznej (pojedyncza,

Bardziej szczegółowo

Kurs WWW. Paweł Rajba. pawel@ii.uni.wroc.pl http://pawel.ii.uni.wroc.pl/

Kurs WWW. Paweł Rajba. pawel@ii.uni.wroc.pl http://pawel.ii.uni.wroc.pl/ Paweł Rajba pawel@ii.uni.wroc.pl http://pawel.ii.uni.wroc.pl/ Spis treści Wprowadzenie Automatyczne ładowanie klas Składowe klasy, widoczność składowych Konstruktory i tworzenie obiektów Destruktory i

Bardziej szczegółowo

Programowanie obiektowe w C++ Wykªad 4

Programowanie obiektowe w C++ Wykªad 4 Programowanie obiektowe w C++ Wykªad 4 dr Lidia St pie«akademia im. Jana Dªugosza w Cz stochowie L. St pie«(ajd) Programowanie obiektowe w C++ 1 / 26 Dziedziczenie - podstawy Denicja klasy dziedzicz cej

Bardziej szczegółowo

Pakiety i interfejsy. Tomasz Borzyszkowski

Pakiety i interfejsy. Tomasz Borzyszkowski Pakiety i interfejsy Tomasz Borzyszkowski Pakiety podstawy W dotychczasowych przykładach nazwy klas musiały pochodzić z jednej przestrzeni nazw, tj. być niepowtarzalne tak, by nie doprowadzić do kolizji

Bardziej szczegółowo

Programowanie w Internecie. Java

Programowanie w Internecie. Java Programowanie w Internecie Java Autor: dr inż. Zofia Kruczkiewicz Literatura: L. Lemay, R. Cadenhead P. Naughton Krzysztof Barteczko Boone Barry Java 2 dla każdego Podręcznik Języka Programowania Java

Bardziej szczegółowo

Wzorce projektowe strukturalne cz. 1

Wzorce projektowe strukturalne cz. 1 Wzorce projektowe strukturalne cz. 1 Krzysztof Ciebiera 19 pa¹dziernika 2005 1 1 Wst p 1.1 Podstawowe wzorce Podstawowe wzorce Podstawowe informacje Singleton gwarantuje,»e klasa ma jeden egzemplarz. Adapter

Bardziej szczegółowo

JAVA W SUPER EXPRESOWEJ PIGUŁCE

JAVA W SUPER EXPRESOWEJ PIGUŁCE JAVA W SUPER EXPRESOWEJ PIGUŁCE Obiekt Obiekty programowe to zbiór własności i zachowań (zmiennych i metod). Podobnie jak w świecie rzeczywistym obiekty posiadają swój stan i zachowanie. Komunikat Wszystkie

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Laboratorium 3 i 4 - przypomnienie wiadomości o OOP na przykładzie Javy mgr inż. Krzysztof Szwarc krzysztof@szwarc.net.pl Sosnowiec, 8 marca 2017 1 / 20 mgr inż. Krzysztof Szwarc

Bardziej szczegółowo

KLASY, INTERFEJSY, ITP

KLASY, INTERFEJSY, ITP KLASY, INTERFEJSY, ITP ZAGADNIENIA: Klasy, modyfkatory dostępu, pakiety. Zmienne i metody statyczne. Klasy abstrakcyjne, dziedziczenie. Interfejsy. Komentarze i javadoc, http://th-www.if.uj.edu.pl/zfs/ciesla/

Bardziej szczegółowo

Kurs programowania. Wykład 1. Wojciech Macyna. 3 marca 2016

Kurs programowania. Wykład 1. Wojciech Macyna. 3 marca 2016 Wykład 1 3 marca 2016 Słowa kluczowe języka Java abstract, break, case, catch, class, const, continue, default, do, else, enum, extends, final, finally, for, goto, if, implements, import, instanceof, interface,

Bardziej szczegółowo

Podstawy modelowania w j zyku UML

Podstawy modelowania w j zyku UML Podstawy modelowania w j zyku UML dr hab. Bo»ena Wo¹na-Szcze±niak Akademia im. Jan Dªugosza bwozna@gmail.com Wykªad 8 Diagram pakietów I Diagram pakietów (ang. package diagram) jest diagramem strukturalnym,

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Literatura: Autor: dr inŝ. Zofia Kruczkiewicz Java P. L. Krzysztof Lemay, Naughton Barteczko R. Cadenhead JAVA, Java Podręcznik 2 wykłady dla kaŝdego Języka i ćwiczenia Programowania

Bardziej szczegółowo

Aplikacje Internetowe. Najprostsza aplikacja. Komponenty Javy. Podstawy języka Java

Aplikacje Internetowe. Najprostsza aplikacja. Komponenty Javy. Podstawy języka Java Aplikacje Internetowe Podstawy języka Java Najprostsza aplikacja class Hello { public static void main(string[] args) { System.out.println("Hello World!"); Komponenty Javy JRE Java Runtime Environment

Bardziej szczegółowo

2. Składnia, środowisko i konwencje w Javie

2. Składnia, środowisko i konwencje w Javie Gdańsk, 2014 Ogólnie o Javie Środowisko Java jest językiem programowania, którego podstawowym celem jest realizacja zasady write once, run anywhere. Oznacza to możliwość wykonania tego samego programu,

Bardziej szczegółowo

1. Wprowadzenie do C/C++

1. Wprowadzenie do C/C++ Podstawy Programowania - Roman Grundkiewicz - 013Z Zaj cia 1 1 rodowisko Dev-C++ 1. Wprowadzenie do C/C++ Uruchomienie ±rodowiska: Start Programs Developments Dev-C++. Nowy projekt: File New Project lub

Bardziej szczegółowo

Języki Programowania II Wykład 3. Java podstawy. Przypomnienie

Języki Programowania II Wykład 3. Java podstawy. Przypomnienie Języki Programowania II Wykład 3 Java podstawy Przypomnienie Analiza, projektowanie, programowanie, testowanie, wdrażanie Iteracyjnie nie kaskadowo Przypadki użycia = opowiastki o używaniu systemu = wymagania

Bardziej szczegółowo

Programowanie w Javie 1 Wykład i Ćwiczenia 3 Programowanie obiektowe w Javie cd. Płock, 16 października 2013 r.

Programowanie w Javie 1 Wykład i Ćwiczenia 3 Programowanie obiektowe w Javie cd. Płock, 16 października 2013 r. Programowanie w Javie 1 Wykład i Ćwiczenia 3 Programowanie obiektowe w Javie cd. Płock, 16 października 2013 r. Programowanie obiektowe Programowanie obiektowe (z ang. object-oriented programming), to

Bardziej szczegółowo

0.1 Hierarchia klas. 0.1.1 Diagram. 0.1.2 Krótkie wyjaśnienie

0.1 Hierarchia klas. 0.1.1 Diagram. 0.1.2 Krótkie wyjaśnienie 0.1 Hierarchia klas 0.1.1 Diagram 0.1.2 Krótkie wyjaśnienie Po pierwsze to jest tylko przykładowe rozwiązanie. Zarówno na wtorkowych i czwartkowych ćwiczeniach odbiegaliśmy od niego, ale nie wiele. Na

Bardziej szczegółowo

Enkapsulacja, dziedziczenie, polimorfizm

Enkapsulacja, dziedziczenie, polimorfizm 17 grudnia 2008 Spis treści I Enkapsulacja 1 Enkapsulacja 2 Spis treści II Enkapsulacja 3 Czym jest interfejs Jak definuje się interfejs? Rozszerzanie interfejsu Implementacja interfejsu Częściowa implementacja

Bardziej szczegółowo

Klasy abstrakcyjne, interfejsy i polimorfizm

Klasy abstrakcyjne, interfejsy i polimorfizm Programowanie obiektowe 12 kwietnia 2011 Organizacyjne Klasówka będzie 20 IV 2011. Sale jeszcze są pertraktowane. Materiał do wyjątków włącznie. Można mieć swoje materiały nieelektroniczne. Wywołanie z

Bardziej szczegółowo

1. Wprowadzenie do C/C++

1. Wprowadzenie do C/C++ Podstawy Programowania :: Roman Grundkiewicz :: 014 Zaj cia 1 1 rodowisko Dev-C++ 1. Wprowadzenie do C/C++ Uruchomienie ±rodowiska: Start Programs Developments Dev-C++. Nowy projekt: File New Project lub

Bardziej szczegółowo

Model obiektu w JavaScript

Model obiektu w JavaScript 16 marca 2009 E4X Paradygmat klasowy Klasa Deniuje wszystkie wªa±ciwo±ci charakterystyczne dla wybranego zbioru obiektów. Klasa jest poj ciem abstrakcyjnym odnosz cym si do zbioru, a nie do pojedynczego

Bardziej szczegółowo

Platformy Programistyczne Podstawy języka Java

Platformy Programistyczne Podstawy języka Java Platformy Programistyczne Podstawy języka Java Agata Migalska 6 maja 2014 Plan wykładu 1 Sztuka wysławiania się w języku Java 2 Cały świat jest obiektem 3 Kolekcje 4 Zmienne i metody statyczne 5 Słowo

Bardziej szczegółowo

1 Atrybuty i metody klasowe

1 Atrybuty i metody klasowe 1 Atrybuty i metody klasowe Składowe klasowe (statyczne) Każdy obiekt klasy posiada własny zestaw atrybutów. Metody używają atrybutów odpowiedniego obiektu. Czasem potrzeba atrybutów wspólnych dla wszystkich

Bardziej szczegółowo

Klasy. dr Anna Łazińska, WMiI UŁ Podstawy języka Java 1 / 13

Klasy. dr Anna Łazińska, WMiI UŁ Podstawy języka Java   1 / 13 Klasy Klasa to grupa obiektów, które mają wspólne właściwości, a obiekt jest instancją klasy. Klasa w języku Java może zawierać: pola - reprezentują stan obiektu (odniesienie do pola z kropką), methods

Bardziej szczegółowo

Laboratorium 03: Podstawowe konstrukcje w języku Java [2h]

Laboratorium 03: Podstawowe konstrukcje w języku Java [2h] 1. Typy. Java jest językiem programowania z silnym systemem kontroli typów. To oznacza, że każda zmienna, atrybut czy parametr ma zadeklarowany typ. Kompilator wylicza typy wszystkich wyrażeń w programie

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Przygotował: Jacek Sroka 1 Programowanie obiektowe Wykład 3 Java podstawy Przygotował: Jacek Sroka 2 Przypomnienie Analiza, projektowanie, programowanie, testowanie, wdrażanie Iteracyjnie nie kaskadowo

Bardziej szczegółowo

Informatyka I. Dziedziczenie. Nadpisanie metod. Klasy abstrakcyjne. Wskaźnik this. Metody i pola statyczne. dr inż. Andrzej Czerepicki

Informatyka I. Dziedziczenie. Nadpisanie metod. Klasy abstrakcyjne. Wskaźnik this. Metody i pola statyczne. dr inż. Andrzej Czerepicki Informatyka I Dziedziczenie. Nadpisanie metod. Klasy abstrakcyjne. Wskaźnik this. Metody i pola statyczne. dr inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2017 Dziedziczenie klas

Bardziej szczegółowo

Interfejsy. Programowanie obiektowe. Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej

Interfejsy. Programowanie obiektowe. Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej Programowanie obiektowe Interfejsy Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej pawel.rogalinski pwr.wroc.pl Interfejsy Autor: Paweł Rogaliński Instytut Informatyki,

Bardziej szczegółowo

Polimorfizm. dr Jarosław Skaruz

Polimorfizm. dr Jarosław Skaruz Polimorfizm dr Jarosław Skaruz http://jareks.ii.uph.edu.pl jaroslaw@skaruz.com O czym będzie? finalne składowe klasy abstrakcyjne interfejsy polimorfizm Finalne składowe Domyślnie wszystkie pola i metody

Bardziej szczegółowo

Dokumentacja do API Javy.

Dokumentacja do API Javy. Dokumentacja do API Javy http://java.sun.com/j2se/1.5.0/docs/api/ Klasy i obiekty Klasa jest to struktura zawierająca dane (pola), oraz funkcje operujące na tych danych (metody). Klasa jest rodzajem szablonu

Bardziej szczegółowo

PROGRAMOWANIE OBIEKTOWE W C++ - cz 1. Definicja klasy, składniki klasy, prawa dost pu, definiowanie funkcji składowych, konstruktory i destruktory.

PROGRAMOWANIE OBIEKTOWE W C++ - cz 1. Definicja klasy, składniki klasy, prawa dost pu, definiowanie funkcji składowych, konstruktory i destruktory. PROGRAMOWANIE OBIEKTOWE W C++ - cz 1 Definicja klasy, składniki klasy, prawa dost pu, definiowanie funkcji składowych, konstruktory i destruktory. Program komputerowy opisuje w pewien sposób rzeczywisto.

Bardziej szczegółowo

Polimorfizm, metody wirtualne i klasy abstrakcyjne

Polimorfizm, metody wirtualne i klasy abstrakcyjne Programowanie obiektowe Polimorfizm, metody wirtualne i klasy abstrakcyjne Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej pawel.rogalinski pwr.wroc.pl Polimorfizm,

Bardziej szczegółowo

Technologie i usługi internetowe cz. 2

Technologie i usługi internetowe cz. 2 Technologie i usługi internetowe cz. 2 Katedra Analizy Nieliniowej, WMiI UŁ Łódź, 15 luty 2014 r. 1 Programowanie obiektowe Programowanie obiektowe (z ang. object-oriented programming), to paradygmat programowania,

Bardziej szczegółowo

Java - wprowadzenie. Programowanie Obiektowe Mateusz Cicheński

Java - wprowadzenie. Programowanie Obiektowe Mateusz Cicheński Java - wprowadzenie Programowanie Obiektowe Mateusz Cicheński O języku Czym jest Java Cechy charakterystyczne języka Przykładowe zastosowania Składnia języka Podstawowe typy Wybrane słowa kluczowe Plan

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe IV. Interfejsy i klasy wewnętrzne Małgorzata Prolejko OBI JA16Z03 Plan Właściwości interfejsów. Interfejsy a klasy abstrakcyjne. Klonowanie obiektów. Klasy wewnętrzne. Dostęp do

Bardziej szczegółowo

Dziedziczenie. Tomasz Borzyszkowski

Dziedziczenie. Tomasz Borzyszkowski Dziedziczenie Tomasz Borzyszkowski Podstawy Zobacz: Dziedzictwo1.java Dziedzictwo2.java Dziedziczenie jest jedną z podstawowych cech OOP ponieważ umożliwia łatwe implementowanie klasyfikacji hierarchicznych.

Bardziej szczegółowo

Kurs programowania. Wykład 2. Wojciech Macyna. 17 marca 2016

Kurs programowania. Wykład 2. Wojciech Macyna. 17 marca 2016 Wykład 2 17 marca 2016 Dziedziczenie Klasy bazowe i potomne Dziedziczenie jest łatwym sposobem rozwijania oprogramowania. Majac klasę bazowa możemy ja uszczegółowić (dodać nowe pola i metody) nie przepisujac

Bardziej szczegółowo

Aplikacje w środowisku Java

Aplikacje w środowisku Java Aplikacje w środowisku Java Materiały do zajęć laboratoryjnych Klasy i obiekty - dziedziczenie mgr inż. Kamil Zieliński Katolicki Uniwersytet Lubelski Jana Pawła II 2018/2019 W ramach poprzedniego laboratorium

Bardziej szczegółowo

Klasa jest nowym typem danych zdefiniowanym przez użytkownika. Najprostsza klasa jest po prostu strukturą, np

Klasa jest nowym typem danych zdefiniowanym przez użytkownika. Najprostsza klasa jest po prostu strukturą, np Klasy Klasa jest nowym typem danych zdefiniowanym przez użytkownika Wartości takiego typu nazywamy obiektami Najprostsza klasa jest po prostu strukturą, np struct Zespolona { Klasy jako struktury z operacjami

Bardziej szczegółowo

Kurs programowania. Wstęp - wykład 0. Wojciech Macyna. 22 lutego 2016

Kurs programowania. Wstęp - wykład 0. Wojciech Macyna. 22 lutego 2016 Wstęp - wykład 0 22 lutego 2016 Historia Simula 67 język zaprojektowany do zastosowan symulacyjnych; Smalltalk 80 pierwszy język w pełni obiektowy; Dodawanie obiektowości do języków imperatywnych: Pascal

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Wykład 2 Marcin Młotkowski 4 marca 2015 Plan wykładu 1 2 3 4 5 Marcin Młotkowski Programowanie obiektowe 2 / 47 Krótki opis C Obiektowy, z kontrolą typów; automatyczne odśmiecanie;

Bardziej szczegółowo

Wykład 2 Wybrane konstrukcje obiektowych języków programowania (1)

Wykład 2 Wybrane konstrukcje obiektowych języków programowania (1) MAS dr. Inż. Mariusz Trzaska Wykład 2 Wybrane konstrukcje obiektowych języków programowania (1) Zagadnienia o Podstawy o Kontrolowanie sterowania o Klasy o Interfejsy o Obsługa błędów o Pojemniki o System

Bardziej szczegółowo

JAVA. Java jest wszechstronnym językiem programowania, zorientowanym. apletów oraz samodzielnych aplikacji.

JAVA. Java jest wszechstronnym językiem programowania, zorientowanym. apletów oraz samodzielnych aplikacji. JAVA Java jest wszechstronnym językiem programowania, zorientowanym obiektowo, dostarczającym możliwość uruchamiania apletów oraz samodzielnych aplikacji. Java nie jest typowym kompilatorem. Źródłowy kod

Bardziej szczegółowo

Programowanie Komputerów

Programowanie Komputerów Programowanie Komputerów Łukasz Kuszner pokój 209, WETI http://www.kaims.pl/ kuszner/ kuszner@eti.pg.gda.pl Wykład 30 godzin, Laboratoria 30 godzin 2012/ Strona 1 z 28 1. Tablice w C# Indeksowane od zera

Bardziej szczegółowo

1. Co można powiedzieć o poniższym kodzie (zakładając, że zaimportowano wszystkie niezbędne klasy)?

1. Co można powiedzieć o poniższym kodzie (zakładając, że zaimportowano wszystkie niezbędne klasy)? 1. Co można powiedzieć o poniższym kodzie (zakładając, że zaimportowano wszystkie niezbędne klasy)? public static void test1() { Object[] o = new Object[] { "1", "2", "3" ; List l = new ArrayList(Arrays.asList(o));

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Przygotował: Jacek Sroka 1 Programowanie obiektowe Wykład 4 Java podstawy c.d. (w tym pakiety, polimorfizm, modyfikatory, klasy abstrakcyjne, interfejsy) Przygotował: Jacek Sroka 2 Kolokwium planujemy

Bardziej szczegółowo

Jzyk C++ cz 3. Jarosław Gramacki Instytut Informatyki i Elektroniki ( $)*)+' *, - ( ' )*'.' '',*/ *, ','*0) 1 / ) %*+ 2'' 2" ( $%%) )'20 )*0) 1 / )

Jzyk C++ cz 3. Jarosław Gramacki Instytut Informatyki i Elektroniki ( $)*)+' *, - ( ' )*'.' '',*/ *, ','*0) 1 / ) %*+ 2'' 2 ( $%%) )'20 )*0) 1 / ) Jzyk C++ cz 3 Jarosław Gramacki Instytut Informatyki i Elektroniki # $$%%& ' ( $)*)+' *, - ( ' )*'.' '',*/ *, ','*0) 1 / ) %*+ 2'' 2" ( $%%) )'20 )*0) 1 / )!" 2 # $$%%& ' ( $%%/,))3 ( %* 2 / 4 ( ( *' *''*,

Bardziej szczegółowo

Kompozycja i dziedziczenie klas

Kompozycja i dziedziczenie klas Programowanie obiektowe Kompozycja i dziedziczenie klas Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej pawel.rogalinski pwr.wroc.pl Kompozycja i dziedziczenie klas

Bardziej szczegółowo

Platformy Programistyczne Wykład z Javy dla zaawansowanych

Platformy Programistyczne Wykład z Javy dla zaawansowanych Platformy Programistyczne Wykład z Javy dla zaawansowanych Agata Migalska 20 maja 2014 Plan wykładu 1 Polimorfizm i dziedziczenie 2 Życie i śmierć obiektu 3 Poziomy oraz modyfikatory dostępu 4 Obsługa

Bardziej szczegółowo

Aplikacje w środowisku Java

Aplikacje w środowisku Java Aplikacje w środowisku Java Materiały do zajęć laboratoryjnych Klasy i obiekty - wprowadzenie mgr inż. Kamil Zieliński Katolicki Uniwersytet Lubelski Jana Pawła II 2018/2019 Klasa zbiór pól i metod Obiekt

Bardziej szczegółowo

Programowanie i projektowanie obiektowe

Programowanie i projektowanie obiektowe Programowanie i projektowanie obiektowe Klasy i obiekty Paweł Daniluk Wydział Fizyki Jesień 2011 P. Daniluk (Wydział Fizyki) PO w. V Jesień 2011 1 / 13 Typy danych (w Javie) Typy pierwotne typ wartości

Bardziej szczegółowo

Podstawowe części projektu w Javie

Podstawowe części projektu w Javie Podstawowe części projektu w Javie Pakiet w Javie to grupa podobnych typów klas, interfejsów i podpakietów. Pakiet w Javie może być wbudowany lub zdefiniowany przez użytkownika. Istnieje wiele wbudowanych

Bardziej szczegółowo

Podstawy Języka Java

Podstawy Języka Java Podstawy Języka Java Programowanie obiektowe Programowanie obiektowe (z ang. object-oriented programming), to paradygmat programowania, w którym programy definiuje się za pomocą obiektów elementów łączących

Bardziej szczegółowo

19. Obiektowo± 1 Kacze typowanie. 2 Klasy

19. Obiektowo± 1 Kacze typowanie. 2 Klasy 1 Kacze typowanie 19. Obiektowo± Sk d interpreter wie, jakiego typu s np. przekazywane do metody argumenty? Tak naprawd wcale nie musi wiedzie. Do poprawnego dziaªania programu istotne jest,»e przekazywany

Bardziej szczegółowo

1. Co można powiedzieć o poniższym kodzie? public interface I { void m1() {}; static public void m2() {}; void abstract m3();

1. Co można powiedzieć o poniższym kodzie? public interface I { void m1() {}; static public void m2() {}; void abstract m3(); 1. Co można powiedzieć o poniższym kodzie? public interface I { void m1() {; static public void m2() {; void abstract m3(); default static void m4() {; a) Poprawnie zadeklarowano metodę m1() b) Poprawnie

Bardziej szczegółowo

Język JAVA podstawy. Wykład 4, część 1. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Język JAVA podstawy. Wykład 4, część 1. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna Język JAVA podstawy Wykład 4, część 1 1 Język JAVA podstawy Plan wykładu: 1. Podstawy modelowania obiektowego 2. Konstruktory 3. Dziedziczenie, związki pomiędzy klasami, UML 4. Polimorfizm 5. Klasy abstrakcyjne

Bardziej szczegółowo

1. Klasa typu sealed. Przykład 1. sealed class Standard{ class NowyStandard:Standard{ // błd!!!

1. Klasa typu sealed. Przykład 1. sealed class Standard{ class NowyStandard:Standard{ // błd!!! Temat: Klasy typu sealed. Klasy abstrakcyjne. Deklaracja i implementacja interfejsu. Typ Object i operatory is oraz as. Czas ycia obiektu. Destruktory. 1. Klasa typu sealed Przykład 1 Klasa typu sealed

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Wykład 5 Marcin Młotkowski 23 marca 2017 Plan wykładu 1 2 3 4 5 Marcin Młotkowski Programowanie obiektowe 2 / 50 Historia Początkowe założenia Projekt OAK Sterowanie urządzeniami

Bardziej szczegółowo

Klasy i obiekty cz II

Klasy i obiekty cz II Materiał pomocniczy do kursu Podstawy programowania Autor: Grzegorz Góralski ggoralski.com Klasy i obiekty cz II Hermetyzacja, mutatory, akcesory, ArrayList Rozwijamy aplikację Chcemy, aby obiekty klasy

Bardziej szczegółowo

PHP 5 język obiektowy

PHP 5 język obiektowy PHP 5 język obiektowy Wprowadzenie Klasa w PHP jest traktowana jak zbiór, rodzaj różnych typów danych. Stanowi przepis jak stworzyć konkretne obiekty (instancje klasy), jest definicją obiektów. Klasa reprezentuje

Bardziej szczegółowo

public - może być używana w kodzie poza klasą, jedna klasa ModyfikatorKlasy może być kombinacją wyrażeń:

public - może być używana w kodzie poza klasą, jedna klasa ModyfikatorKlasy może być kombinacją wyrażeń: Klasy Metody [ModyfikatorMetody] TypZwrotny Nazwa (Typ arg1, ) { // implementacja metody ModyfikatorMetody może być kombinacją wyrażeń: modyfikator widzialności public dostępna dla metod spoza klasy protected

Bardziej szczegółowo

dziedziczenie - po nazwie klasy wystąpią słowa: extends nazwa_superklasy

dziedziczenie - po nazwie klasy wystąpią słowa: extends nazwa_superklasy PODSTAWOWE ELEMENTY JĘZYKA JAVA TYPY DANYCH, OPERATORY I INSTRUKCJE 1. Definicja klasy, dziedziczenie, implementowanie metod interfejsów class nazwa_klasy //ciało klasy Klasa: przed słowem class moŝe wystąpić

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Laboratorium 1. Wstęp do programowania w języku Java. Narzędzia 1. Aby móc tworzyć programy w języku Java, potrzebny jest zestaw narzędzi Java Development Kit, który można ściągnąć

Bardziej szczegółowo

Java podstawy jęyka. Wykład 2. Klasy abstrakcyjne, Interfejsy, Klasy wewnętrzne, Anonimowe klasy wewnętrzne.

Java podstawy jęyka. Wykład 2. Klasy abstrakcyjne, Interfejsy, Klasy wewnętrzne, Anonimowe klasy wewnętrzne. Java podstawy jęyka Wykład 2 Klasy abstrakcyjne, Interfejsy, Klasy wewnętrzne, Anonimowe klasy wewnętrzne. Wyjątki: obsługa błędów Wydział Fizyki i Informatyki Stosowanej, Uniwersytetu Łódzkiego 12.03.2015

Bardziej szczegółowo

Java - tablice, konstruktory, dziedziczenie i hermetyzacja

Java - tablice, konstruktory, dziedziczenie i hermetyzacja Java - tablice, konstruktory, dziedziczenie i hermetyzacja Programowanie w językach wysokiego poziomu mgr inż. Anna Wawszczak PLAN WYKŁADU zmienne tablicowe konstruktory klas dziedziczenie hermetyzacja

Bardziej szczegółowo

Programowanie w środowiskach graficznych. Wykład 3 Język C#

Programowanie w środowiskach graficznych. Wykład 3 Język C# Programowanie w środowiskach graficznych Wykład 3 Język C# 1 Zagadnienia 1. Wprowadzenie 2. Przestrzenie nazw 3. Typy, parametry, konwersje 4. Klasy 5. Instrukcje sterujące 6. Właściwości 7. Interfejsy,

Bardziej szczegółowo

1. Co będzie wynikiem wykonania poniŝszych instrukcji? g2d.gettransform().scale(1, -1); g2d.gettransform().translate(4, -8); g2d.drawline(4, 0, 4, 4);

1. Co będzie wynikiem wykonania poniŝszych instrukcji? g2d.gettransform().scale(1, -1); g2d.gettransform().translate(4, -8); g2d.drawline(4, 0, 4, 4); 1. Co będzie wynikiem wykonania poniŝszych instrukcji? g2d.gettransform().scale(1, -1); g2d.gettransform().translate(4, -8); g2d.drawline(4, 0, 4, 4); a) b) c) d) 2. Jaki będzie wynik kompilacji i wykonania

Bardziej szczegółowo

Języki i techniki programowania Ćwiczenia 3 Dziedziczenie

Języki i techniki programowania Ćwiczenia 3 Dziedziczenie Języki i techniki programowania Ćwiczenia 3 Dziedziczenie Klasa abstrakcyjna Autor: Marcin Orchel Klasa abstrakcyjna to taka, że nie możemy tworzyć obiektów tej klasy, możemy jednak dziedziczyć po tej

Bardziej szczegółowo

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02 METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE Wykład 02 NAJPROSTSZY PROGRAM /* (Prawie) najprostszy przykład programu w C */ /*==================*/ /* Między tymi znaczkami można pisać, co się

Bardziej szczegółowo

Wprowadzenie do języka Java

Wprowadzenie do języka Java WSNHiD, Programowanie 2 Lab. 1 [ część 1 ] Wprowadzenie do języka Java Wprowadzenie Język programowania Java jest obiektowym językiem programowania. Powstał w 1995 i od tej pory był intensywnie rozwijany.

Bardziej szczegółowo

Obszar statyczny dane dostępne w dowolnym momencie podczas pracy programu (wprowadzone słowem kluczowym static),

Obszar statyczny dane dostępne w dowolnym momencie podczas pracy programu (wprowadzone słowem kluczowym static), Tworzenie obiektów Dostęp do obiektów jest realizowany przez referencje. Obiekty w języku Java są tworzone poprzez użycie słowa kluczowego new. String lan = new String( Lancuch ); Obszary pamięci w których

Bardziej szczegółowo

i, lub, nie Cegieªki buduj ce wspóªczesne procesory. Piotr Fulma«ski 5 kwietnia 2017

i, lub, nie Cegieªki buduj ce wspóªczesne procesory. Piotr Fulma«ski 5 kwietnia 2017 i, lub, nie Cegieªki buduj ce wspóªczesne procesory. Piotr Fulma«ski Uniwersytet Šódzki, Wydziaª Matematyki i Informatyki UŠ piotr@fulmanski.pl http://fulmanski.pl/zajecia/prezentacje/festiwalnauki2017/festiwal_wmii_2017_

Bardziej szczegółowo

Języki i metodyka programowania. Język C# pętle, sterowanie, wyjątki

Języki i metodyka programowania. Język C# pętle, sterowanie, wyjątki Język C# pętle, sterowanie, wyjątki Język C# pętle Pętle: while ( ) do { while ( ); for ( ; ; ) foreach ( in

Bardziej szczegółowo

Definicje klas i obiektów. Tomasz Borzyszkowski

Definicje klas i obiektów. Tomasz Borzyszkowski Definicje klas i obiektów Tomasz Borzyszkowski Podstawy Do tej pory używaliśmy klas jedynie po to, by zdefiniować metodę main(). Klasy mają znacznie szersze zastosowanie w Java. W OOP (także w Java) klasy

Bardziej szczegółowo

Kurs programowania. Wykład 3. Wojciech Macyna. 22 marca 2019

Kurs programowania. Wykład 3. Wojciech Macyna. 22 marca 2019 Wykład 3 22 marca 2019 Klasy wewnętrzne Klasa wewnętrzna class A {... class B {... }... } Klasa B jest klasa wewnętrzna w klasie A. Klasa A jest klasa otaczajac a klasy B. Klasy wewnętrzne Właściwości

Bardziej szczegółowo

Tworzenie aplikacji w języku Java

Tworzenie aplikacji w języku Java Tworzenie aplikacji w języku Java Wykład 1 Piotr Czapiewski Wydział Informatyki ZUT 2 października 2009 Piotr Czapiewski (Wydział Informatyki ZUT) Tworzenie aplikacji w języku Java 2 października 2009

Bardziej szczegółowo

Dziedziczenie. dr Jarosław Skaruz

Dziedziczenie. dr Jarosław Skaruz Dziedziczenie dr Jarosław Skaruz http://jareks.ii.uph.edu.pl jaroslaw@skaruz.com Dziedziczenie specjalizacja Dziedziczenie generalizacja Generalizacja-specjalizacja jest takim związkiem pomiędzy klasami,

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Wykład 2 28 lutego 2019 Plan wykładu 1 2 3 4 5 Plan wykładu 1 2 3 4 5 Krótki opis C Obiektowy, z kontrolą typów; automatyczne odśmiecanie; standardy ISO i ECMA; podobny składniowo do C++; Język C Krótka

Bardziej szczegółowo

PWSG Ćwiczenia 12. Wszystkie ukończone zadania należy wysłać na adres: lub

PWSG Ćwiczenia 12. Wszystkie ukończone zadania należy wysłać na adres: lub PWSG Ćwiczenia 12 Wszystkie ukończone zadania należy wysłać na adres: sara.m.jurczyk@gmail.com lub sarajurczyk@kul.lublin.pl Zadanie 1: Różnica między zwykłymi polami/metodami, a polami/metodami static

Bardziej szczegółowo

Związek między pojęciami Zasada podstawialności Podklasy muszą realizować kontrakt zawarty przez nadklasy

Związek między pojęciami Zasada podstawialności Podklasy muszą realizować kontrakt zawarty przez nadklasy Janusz Jabłonowski Związek między pojęciami Zasada podstawialności Podklasy muszą realizować kontrakt zawarty przez nadklasy Przedefiniowywanie lub podmienianie (ang. overriding, czasami błędnie tłumaczone

Bardziej szczegółowo

Klasy abstrakcyjne i interfejsy

Klasy abstrakcyjne i interfejsy Klasy abstrakcyjne i interfejsy Streszczenie Celem wykładu jest omówienie klas abstrakcyjnych i interfejsów w Javie. Czas wykładu 45 minut. Rozwiązanie w miarę standardowego zadania matematycznego (i nie

Bardziej szczegółowo

Podstawy i języki programowania

Podstawy i języki programowania Podstawy i języki programowania Laboratorium 2 - wprowadzenie do zmiennych mgr inż. Krzysztof Szwarc krzysztof@szwarc.net.pl Sosnowiec, 23 października 2017 1 / 26 mgr inż. Krzysztof Szwarc Podstawy i

Bardziej szczegółowo

Logika dla matematyków i informatyków Wykªad 1

Logika dla matematyków i informatyków Wykªad 1 Logika dla matematyków i informatyków Wykªad 1 Stanisªaw Goldstein Wydziaª Matematyki i Informatyki UŠ 16 lutego 2016 Wszech±wiat matematyczny skªada si wyª cznie ze zbiorów. Liczby naturalne s zdeniowane

Bardziej szczegółowo

Języki i metody programowania Java. Wykład 2 (część 2)

Języki i metody programowania Java. Wykład 2 (część 2) Języki i metody programowania Java INF302W Wykład 2 (część 2) Autor Dr inż. Zofia Kruczkiewicz 1 Struktura wykładu 1. Identyfikacja danych reprezentowanych przez klasy podczas opracowania koncepcji prostego

Bardziej szczegółowo

Wykład 2: Podstawy Języka

Wykład 2: Podstawy Języka Wykład 2: Podstawy Języka 1.wprowadzenie 2.podstawy języka 3.sterowanie 4.inicjacja i sprzątanie 5.kontrola dostępu 6.dziedziczenie 7.polimorfizm 8.obsługa błędów 9.kolekcje obiektów 10.wejście i wyjście

Bardziej szczegółowo

Programowanie obiektowe - 1.

Programowanie obiektowe - 1. Programowanie obiektowe - 1 Mariusz.Masewicz@cs.put.poznan.pl Programowanie obiektowe Programowanie obiektowe (ang. object-oriented programming) to metodologia tworzenia programów komputerowych, która

Bardziej szczegółowo

Java: interfejsy i klasy wewnętrzne

Java: interfejsy i klasy wewnętrzne Java: interfejsy i klasy wewnętrzne Programowanie w językach wysokiego poziomu mgr inż. Anna Wawszczak 1 INTERFEJSY Interfejs to opis co klasa implementująca dany interfejs powinna robić, ale bez określania

Bardziej szczegółowo

Przypomnienie o klasach i obiektach

Przypomnienie o klasach i obiektach Wykład 14 Programowanie obiektowe ciąg dalszy, str 1 Przypomnienie o klasach i obiektach -5 należydo int 314 należy do double false należy do boolean {27, 314,-15 należy do double[] wartość należy do typ

Bardziej szczegółowo

Java niezbędnik programisty spotkanie nr 3. Modyfikatory, jednostki kompilacji, tworzenie/inicjalizacja, odśmiecanie/ finalizacja...

Java niezbędnik programisty spotkanie nr 3. Modyfikatory, jednostki kompilacji, tworzenie/inicjalizacja, odśmiecanie/ finalizacja... Java niezbędnik programisty spotkanie nr 3 Modyfikatory, jednostki kompilacji, tworzenie/inicjalizacja, odśmiecanie/ finalizacja... 1 Definicja klasy [modyfikator] class nazwa_klasy { [modyfikator] nazwa_typu

Bardziej szczegółowo

Programowanie 2. Język C++. Wykład 2.

Programowanie 2. Język C++. Wykład 2. 2.1 Definicja, deklaracja, wywołanie funkcji.... 1 2.2 Funkcje inline... 4 2.3 Przekazanie do argumentu funkcji wartości, adresu zmiennej.... 5 2.4 Wskaźniki do funkcji... 8 2.5 Przeładowanie funkcji...

Bardziej szczegółowo

Przykład -

Przykład - Polimorfizm Przykład - http://rpodhajny.wordpress.com klasa bazowa A, oraz klasy pochodne B1, B2,, Bn (dziedziczące po klasie bazowej). niektóre klasy pochodne chcą mieć możliwość skorzystania z metody

Bardziej szczegółowo